package cn._2dland.bots.jdo;

import javax.jdo.PersistenceManager;

/**
 * 实体管理器类：提供了连接、关闭持久化管理器的基本功能。
 * 所有对实体进行管理的类，都可继承本类。
 * @author deadblue
 */
public abstract class EntityManager {
	protected PersistenceManager pm = null;
	protected boolean bOpened = false;

	public EntityManager() {
		pm = PMFactory.getPMFInstance().getPersistenceManager();
		bOpened = true;
	}

	/** 打开连接 */
	/*public void open() {
		pm = PMFactory.getPMFInstance().getPersistenceManager();
		bOpened = true;
	}*/
	/** 关闭连接 */
	public void close() {
		if(bOpened) {
			pm.close();
			bOpened = false;
		}
	}
	/** 开启事务 */
	public void begin() {
		if(pm != null)
			pm.currentTransaction().begin();
	}
	/** 提交事务 */
	public void commit() {
		if(pm != null)
			pm.currentTransaction().commit();
	}
	/** 回滚事务 */
	public void rollback() {
		if(pm != null)
			pm.currentTransaction().rollback();
	}
	/** 连接是否已经打开 */
	public boolean isOpened() {
		return bOpened;
	}
}
